﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Happy.Domain
{
    /// <summary>
    /// 工作单元接口。
    /// </summary>
    public interface IUnitOfWork : IDisposable
    {
        /// <summary>
        /// persistent in unitofwork -> Flush -> persistent in database，提交工作单元，会生成并执行SQL，场景：执行完一系列Create、Update和Delete后统一Flush，只产生一次数据库往返。
        /// </summary>
        void Flush();

        /// <summary>
        /// 清空工作单元跟踪的所有实例，或者叫做清空一级缓存，此时处于persistent in unitofwork状态的实例数为零。
        /// </summary>
        void Clear();
    }
}
